package com.wodsy.phoenix.dataservice.payc.alipay;

import com.wodsy.phoenix.dataservice.payc.alipay.config.AlipayConfig;
import com.wodsy.phoenix.dataservice.payc.alipay.util.AlipaySubmit;
import com.wodsy.phoenix.dataservice.payc.util.Messages;

import java.util.HashMap;
import java.util.Map;

/**
 * 支付宝支付入口
 * Created by jiwenku on 2015/5/22.
 */
public class AliPayHelpHandler {

    /**
     * 生成支付宝提交的form表单
     * @param sellerEmail 卖家的支付宝账号
     * @param orderNo 订单编号（我的手艺网支付序列号）
     * @param orderPrice 订单要支付的金额
     * @return String null 表示支付失败，里面业务或支付宝生成订单有问题
     * @throws Exception
     */
    public String alipayFormPartnerTrade(String sellerEmail,String orderNo, String orderPrice) throws Exception {

        //-------------------1.构建参数-------------------
        String payment_type = "1";// 支付类型，必填，不能修改
        String notify_url = Messages.getString("notifyUrl");// 服务器异步通知页面路径
        // 需http://格式的完整路径，不能加?id=123这类自定义参数
        String return_url = Messages.getString("returnUrl");// 页面跳转同步通知页面路径
        // 需http://格式的完整路径，不能加?id=123这类自定义参数，不能写成http://localhost/

        // 卖家支付宝帐户，必填 new String("bank@wodsy.com".getBytes("ISO-8859-1"),"UTF-8");
        String seller_email = new String(sellerEmail);
        // 商户订单号，商户网站订单系统中唯一订单号，必填
        String out_trade_no = new String(orderNo);
        // 订单名称，必填
        String subject = new String(orderNo);
        // 付款金额(单位：元)，必填
        String price = new String(orderPrice);
        // 收货人姓名
        String receive_name = "";
        // 收货人地址，如：XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号
        String receive_address = "";

        //-------------------2.把请求参数打包成数组-------------------
        Map<String, String> sParaTemp = new HashMap<String, String>();

        sParaTemp.put("service", "create_direct_pay_by_user");//即时到帐
        sParaTemp.put("partner", AlipayConfig.partner);
        sParaTemp.put("_input_charset", AlipayConfig.input_charset);
        sParaTemp.put("payment_type", payment_type);
        sParaTemp.put("notify_url", notify_url);
        sParaTemp.put("return_url", return_url);
        sParaTemp.put("seller_email", seller_email);
        sParaTemp.put("out_trade_no", out_trade_no);
        sParaTemp.put("subject", subject);
        sParaTemp.put("receive_name", receive_name);
        sParaTemp.put("receive_address", receive_address);

        sParaTemp.put("total_fee", orderPrice);//即时到帐就一个总金额就行

        //-------------------3.建立请求-------------------
        String sHtmlText = AlipaySubmit.buildRequest(sParaTemp, "get", "确认");
        return sHtmlText;
    }


}
